<?php

namespace app\admin\controller;

use app\admin\controller\AdminController;
use think\Db;
use think\Request;

// 商品
class GoodsController extends AdminController
{

    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        // echo 111;die;
        // var_dump((empty($_GET)));die;
        if (empty($_GET['title'])) {
               $list = Db::table('goods')->paginate(2);
        } else {
             $title = $_GET['title'];
             $list = Db::table('goods')->where('name','like','%'.$title.'%')->paginate(1);
        }
        $this->assign('list', $list);
        return view('goods/goods-list',[
           'list'=>$list
       ]);
        
    }

     /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        // 获取分类信息
        $list = Db::table('category')->select();

        //处理分类信息
        // $list =  $this->getHtmlCate($list, '——', 0, 0);

        // var_dump($list);die;
       return view('goods/goods-add',[
           'list'=>$list
       ]);
    }


    /**
     * 保存新建的资源
     *
     * @param  \think\Request $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        // var_dump($_POST);die;
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file('pictrue');
        // var_dump($file);die;
        // 移动到框架应用根目录/public/uploads/ 目录下
        if($file){
            $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
            if($info){
            // 成功上传后 获取上传信息
            // 输出 /uploads/20160820/42a79759ff284b767dfcb2a0197904287.jpg
            $icon =  $info->getSaveName();
            }else{
            // 上传失败获取错误信息
            echo $file->getError();
            }
        }




       // dump($request);die;
        // 使用注入的对象 获取POST信息
        $p = $request->post();
        $list = Db::table('goods')->field('name')->select();
        // var_dump($list);die;
        foreach ($list as $k => $v) {
           $a = in_array($p['name'],$v);
            if ($a == true) {
            return $this->error('菜品名不允许重复！');
            }else{
                // var_dump($p);
                // 手动处理数据
                $data = [
                    'name' => $p['name'],
                    'details' => $p['details'],
                    'price' => $p['price'],
                    'goods_categroy_id' => $p['gcid'],
                    'pictrue' => '/uploads/'.$icon
                ];

                // var_dump($data);
                $result = db('goods')->data($data)->insert();
               
                // 判断 执行情况
                if ($result > 0) {
                    return $this->success('添加成功！', url('admin/GoodsController/index'));
                } else {
                    return $this->error('添加失败！');
                }
            }
        }
    }



     /**
     * 显示编辑资源表单页.
     *
     * @param  int $id
     * @return \think\Response
     */
    public function edit($id)
    {
        // var_dump(111);die;
        $row = db('goods')->find($id);
        // var_dump($row);die;
        return view('goods/goods-edit', ['data' => $row, 'id' => $id]);
    }


    /**
     * 保存更新的资源
     *
     * @param  \think\Request $request
     * @param  int $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        // var_dump($_POST);die;
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file('pictrue');
        // var_dump($file);die;
        if ($file == null) {
                    // 移动到框架应用根目录/public/uploads/ 目录下
        if($file){
            $in = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
            if($in){
            // 成功上传后 获取上传信息
            // 输出 /uploads/20160820/42a79759ff284b767dfcb2a0197904287.jpg
            $icon =  $in->getSaveName();
            }else{
            // 上传失败获取错误信息
            echo $file->getError();
            }
        }



        // var_dump($icon);die;
        $info = $request->put();

        // 手动处理数据
        $data = [
            'name' => $info['name'],
            'details' => $info['details'],
            'price' => $info['price']
        ];
       

        $result = db('goods')->where('id', $id)->update($data);
        // 判断 执行情况
        if ($result > 0) {
            return $this->success('编辑成功 !', url('admin/GoodsController/index'));
        } else {
            return $this->error('编辑失败 !');
        }
        } else {
                   // 移动到框架应用根目录/public/uploads/ 目录下
        if($file){
            $in = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
            if($in){
            // 成功上传后 获取上传信息
            // 输出 /uploads/20160820/42a79759ff284b767dfcb2a0197904287.jpg
            $icon =  $in->getSaveName();
            }else{
            // 上传失败获取错误信息
            echo $file->getError();
            }
        }



        // var_dump($icon);die;
        $info = $request->put();

        // 手动处理数据
        $data = [
            'name' => $info['name'],
            'details' => $info['details'],
            'price' => $info['price'],
            'icon' => '/uploads/'.$icon
        ];

        $result = db('goods')->where('id', $id)->update($data);
        // 判断 执行情况
        if ($result > 0) {
            return $this->success('编辑成功 !', url('admin/GoodsController/index'));
        } else {
            return $this->error('编辑失败 !');
        }
        }
        

    }


        /**
     * 删除指定资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function delete($id)
    {
        // var_dump($id);die;
        $result = Db::name('goods')->delete($id);
        if ($result > 0) {
            $info['status'] = true;
            $info['id'] = $id;
            $info['info'] = 'ID为' . $id . '的菜品删除成功!';
        } else {
            $info['status'] = false;
            $info['id'] = $id;
            $info['info'] = 'ID为' . $id . '的菜品删除失败!';
        }
        // JSON 返回
        return json($info);
    }
}

